PMS 启动流程
1.在SystemServer中启动PackageManagerService.main
2.newPackageManagerService()并添加到ServiceManager中
3.newinstaller(建立installer和installd的socket连接,最终在底层实现install,remove,dexopt等功能)
4.通过systemConfig获取到xml文件中信息
5.创建PackageHandler Message Looper(安装/卸载请求)
6.readPLW()(读取data/system/packages.xml)
7.
检查/system/etc/permissions/platform.xml中定制的library及/system/framework下的jar档案是否需要dex提取进行优化。
若需要优化,会调用installer.dexopt提取dex到/data/dalvik-cache中
8.调用scanDirLI扫描存放apk的各个目录
9.系统应用安装—通过scanPackageLI逐一解析AndroidManifest.xml文件,建立每个apk的配置结构,并将apk配置信息添加到全局列表进行管理。
10.调用writeLPr()从全局列表中将apk信息写到packages.xml和packages.list中。